您最親愛的老肝哥又又上線了!
至於為什麼是又又呢?因為老肝哥剛剛文章打文很開心呢,結果
懶惰如老肝哥,一天當然發一篇,意思意思一下就好,
孰不知,這題看著看著就解出來了,一次就過
也不知道是不是慢慢習慣LeetCode做題目的模式,還怎樣
舒服!
雖然這題真的很簡單,但讓老肝哥爽一下嘛
題目描述為下:
Example 1:
Input: x = 121
Output: true
Example 2:
Input: x = -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
老肝哥的理解為:如果從左邊讀到右邊跟從右邊讀到左邊相同的話,就回傳true 不同就傳false
解答如下:
class Solution {
public boolean isPalindrome(int x) {
if (x > -2147483648 || x < 2147483647) {
StringBuffer sb = new StringBuffer();
String tmpStr = String.valueOf(x);
char[] ch = tmpStr.toCharArray();
String tmpStr2 = "";
for (int i = ch.length - 1; i >= 0; i--) {
sb.append(ch[i]);
}
tmpStr2 = sb.toString();
if (tmpStr.equals(tmpStr2)) {
return true;
} else {
return false;
}
}
return false;
}
}
由於有上一題的前車之鑑,老肝哥這次聰明的在頂部加上了int的範圍,棒棒!
先用String.valueOf(x)把input轉成字串,疑?
再用toCharArray()把字串轉成char[],疑 484...?
反著跑個forloop 用append近StringBuffer,疑 這不是跟上題一樣?
然後比較兩個字串,搞定,484很簡單呢?各位小夥伴
但這邊要注意一下使用equals去比較字串內的值,
這種低級知識點,相信大家都知道,
但總有比老肝哥爛的麻(大誤!)
還是提醒一下各位小夥伴喔